package com.tushen.dao;

import org.apache.ibatis.annotations.Param;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

/**
 * 操作数据表通用类
 */
public interface CommonDao {


    /**
     * 返会任意表中的所有记录
     * @param table 表名
     * @return
     */
     List<HashMap> getTableAll(@Param(value = "table") String table);

    /**
     * 根据指定条件，指定列返回 表中记录
     * @param table 表名
     * @param list  列名
     * @param whereMap 条件 key value
     * @return
     */
     List<HashMap> getTableByWhere(@Param(value = "table") String table, @Param(value = "list") ArrayList list, @Param(value = "wheremap") HashMap whereMap);

    /**
     * 向任意表中插入内容
     * @param table 表名
     * @param map 值 key 和 value
     */
     void insertTable(@Param(value = "table") String table, @Param(value = "content") HashMap map);

    /**
     * 向任意表中批量插入内容
     * @param table 表名
     * @param list 值 HashMap list
     */
    int insertByBatch(@Param(value = "table") String table, @Param(value = "content") List<HashMap> list);

    /**
     * 更新任意表中内容
     * @param table 表名
     * @param valueMap 值map
     * @param whereMap 条件map
     */
     void updateTable(@Param(value = "table") String table, @Param(value = "valuemap") HashMap valueMap, @Param(value = "wheremap") HashMap whereMap);

    /**
     * 删除任意表中的记录
     * @param table
     * @param whereMap
     */
     void deleteTable(@Param(value = "table") String table, @Param(value = "wheremap") HashMap whereMap);

    /**
     * 执行任意sql 语句
     * @param sql sql语句
     */
    List<HashMap> executeSql(@Param(value = "sql") String sql);

}
